package ar.edu.utn.frba.disenio;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import ar.edu.utn.frba.disenio.aerolineas.Aerolineas;
import ar.edu.utn.frba.disenio.tipousuarios.TipoUsuario;
 
public class Usuario {
	private TipoUsuario tipo;
	private BigDecimal comprasAcumuladas = new BigDecimal(0);
	private Collection<Busqueda> busquedasRealizadas = new ArrayList<Busqueda>();

	
	public Usuario(TipoUsuario tipo){
		this.tipo = tipo;
	}
	
	public List<Asiento> buscarAsientos(Busqueda busqueda, Aerolineas aerolineas) {
		this.agregarBusqueda(busqueda);
		return aerolineas.asientosDisponibles(this, busqueda);
	}
	
	public void comprarAsiento(Asiento asiento){
		asiento.getAerolinea().comprarAsiento(asiento);
		this.tipo.sumarCompra(this,asiento.getPrecio());
	}
	
	public boolean puedeComprar(Asiento asiento) {
		return this.tipo.puedeComprar(asiento);
	}
	
//	public void sumarCompra(BigDecimal importe){
//		this.comprasAcumuladas = this.comprasAcumuladas.add(importe);
//		
//		
//	}

	public void agregarBusqueda(Busqueda busqueda){
		this.busquedasRealizadas.add(busqueda);
	}
	
	public void setTipo(TipoUsuario tipo) {
		this.tipo = tipo;
	}
	
	public TipoUsuario getTipo(){
		return this.tipo;
	}
	
	public BigDecimal getComprasAcumuladas() {
		return comprasAcumuladas;
	}
	
	public BigDecimal getAdicionalPorTipo() {
		return this.tipo.getImporteAdicional();
	}

	public void setComprasAcumuladas(BigDecimal comprasAcumuladas) {
		this.comprasAcumuladas = comprasAcumuladas;
	}
	
}